<?php
class EntidadesTerritorialesController extends AppController {

	var $name = 'EntidadesTerritoriales';
    var $uses = array('EntidadesTerritoriale','Municipio', 'Departamento', 'InstitucionesEducativa', 
    					'InstitucionesEducativasEntidadesTerritoriale','Participante');
	function index() {
		$this->EntidadesTerritoriale->recursive = 0;
		$this->set('entidadesTerritoriales', $this->paginate());
	}

	function view($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Invalid entidades territoriale', true));
			$this->redirect(array('action' => 'index'));
		}
		$this->set('entidadesTerritoriale', $this->EntidadesTerritoriale->read(null, $id));
	}

	function add() {
		if (!empty($this->data)) {
			$form = $this->data;
			$instituciones_seleccionadas = $form['EntidadesTerritoriale']['instituciones'];					
			$this->EntidadesTerritoriale->create();
			if ($this->EntidadesTerritoriale->save($form)){
				foreach ($instituciones_seleccionadas as $institucion):			
					$registro['InstitucionesEducativasEntidadesTerritoriale']= array('entidades_territoriale_id'=>$this->EntidadesTerritoriale->id,'instituciones_educativa_id'=>$institucion);					
					$this->InstitucionesEducativasEntidadesTerritoriale->create();
					$this->InstitucionesEducativasEntidadesTerritoriale->save($registro);
				endforeach;
					
				$this->Session->setFlash(__('The entidades territoriale has been saved', true));
				$this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash(__('The entidades territoriale could not be saved. Please, try again.', true));
			}
		}
		//$municipios = $this->EntidadesTerritoriale->Municipio->find('list', array('fields'=>array('Municipio.id','Municipio.nombre')));
		$departamentos = $this->Departamento->find('list',array('fields'=>array('Departamento.id','Departamento.nombre')));
		$users = $this->EntidadesTerritoriale->User->find('list');
		$instituciones = $this->EntidadesTerritoriale->InstitucionesEducativa->find('list', 
							array('fields'=>array('InstitucionesEducativa.id','InstitucionesEducativa.nombre'), 'order'=>'InstitucionesEducativa.nombre ASC'));
		
	    $this->set(compact('users','instituciones','departamentos'));
	}

	function edit($id = null) {
		if (!$id && empty($this->data)) {
			$this->Session->setFlash(__('Invalid entidades territoriale', true));
			$this->redirect(array('action' => 'index'));
		}
		if (!empty($this->data)) {
			$form = $this->data;
			$instituciones_seleccionadas = $form['EntidadesTerritoriale']['instituciones'];	
			//instituciones Antiguas
			$instituciones_actuales = $this->InstitucionesEducativasEntidadesTerritoriale->find('list',array('fields'=>array('InstitucionesEducativasEntidadesTerritoriale.id','InstitucionesEducativasEntidadesTerritoriale.instituciones_educativa_id'),'conditions'=>array('InstitucionesEducativasEntidadesTerritoriale.entidades_territoriale_id'=>$id)));	
			
			//Filtrando las instituciones que se eliminan			
			$eliminadas = array_diff($instituciones_actuales, $instituciones_seleccionadas);
			foreach ($eliminadas as $eliminar):
				//Aqui se elimina la institucion de InstitucionesEducativasEntidadesTerritoriale
				$dato = $this->InstitucionesEducativasEntidadesTerritoriale->find('first',array('fields'=>array('InstitucionesEducativasEntidadesTerritoriale.id'),'conditions'=>array('InstitucionesEducativasEntidadesTerritoriale.entidades_territoriale_id'=>$id),'AND'=>array('InstitucionesEducativasEntidadesTerritoriale.instituciones_educativa_id'=>$eliminar)));
				$dato = $dato['InstitucionesEducativasEntidadesTerritoriale']['id'];
				$this->InstitucionesEducativasEntidadesTerritoriale->delete($dato);			
			endforeach;	

			//Filtro de la nuevas			
			foreach($instituciones_seleccionadas as $institucion):
				if(!in_array($institucion,$instituciones_actuales)){
					//Aqui se ingresa
					$registro['InstitucionesEducativasEntidadesTerritoriale']= array('entidades_territoriale_id'=>$id,'instituciones_educativa_id'=>$institucion);					
					$this->InstitucionesEducativasEntidadesTerritoriale->create();
					$this->InstitucionesEducativasEntidadesTerritoriale->save($registro);
				}												
			endforeach;
			
		   if ($this->EntidadesTerritoriale->save($form)) {
				$this->Session->setFlash(__('La entidad territorial ha sido guardado', true));

				$this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash(__('La entidad territorial no ha sido guardado. Please, try again.', true));
			}
		}
		if (empty($this->data)) {
			$this->data = $this->EntidadesTerritoriale->read(null, $id);
		}
		$municipios = $this->EntidadesTerritoriale->Municipio->find('list', array('fields'=>array('Municipio.id','Municipio.nombre')));
		$instituciones = $this->EntidadesTerritoriale->InstitucionesEducativa->find('list', array('fields'=>array('InstitucionesEducativa.id','InstitucionesEducativa.nombre'), 'order'=>'InstitucionesEducativa.nombre ASC'));
		$instituciones_actuales = $this->InstitucionesEducativasEntidadesTerritoriale->find('list',array('fields'=>array('InstitucionesEducativasEntidadesTerritoriale.id','InstitucionesEducativasEntidadesTerritoriale.instituciones_educativa_id'),'conditions'=>array('InstitucionesEducativasEntidadesTerritoriale.entidades_territoriale_id'=>$id)));
		$users = $this->EntidadesTerritoriale->User->find('list');
		$this->set(compact('municipios', 'instituciones', 'users','instituciones_actuales'));
	}

	function delete($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Invalid id for entidades territoriale', true)); 
			$this->redirect(array('action'=>'index'));
		}
		if ($this->EntidadesTerritoriale->delete($id)) {
			$this->Session->setFlash(__('Entidades territoriale deleted', true));
			$this->redirect(array('action'=>'index'));
		}
		$this->Session->setFlash(__('Entidades territoriale was not deleted', true));
		$this->redirect(array('action' => 'index'));
	}
	
	function informe_final(){
		$ets = $this->EntidadesTerritoriale->find('all');
		foreach($ets as &$et):
		//die(var_dump($et));
			$participantes_reunion = array();
			$i=0;
			$participantes_reuniontecnica = $this->Participante->find('all',array('conditions'=>array('Participante.tallere_id'=>0)));
			//Por cada participante se busca si tiene la entidad territorial
			foreach($participantes_reuniontecnica as $participante):
				foreach($et['InstitucionesEducativa'] as $ie):
					if($ie['id']==$participante['Participante']['instituciones_educativa_id']){
						$participantes_reunion[$i]['Participante']=$participante;
						$i++;
					}
				endforeach;
			endforeach;
			$et['participantes_reunion']=$participantes_reunion;
		//	die(var_dump($et['participantes_reunion']));
		endforeach;
	//	die(var_dump($ets));
		$this->set(compact('ets'));
	}
}
